#include <vector>
#include <string>
#include <iostream>
#include <fstream>

class EdgeList {
public:
	EdgeList();
	~EdgeList();

	void add(std::vector<std::pair<std::string, std::string> > edgeGroup);
	bool contains(std::vector<std::pair<std::string, std::string> > edgeGroup);
	unsigned int size();
	std::vector<std::pair<std::string, std::string> > at(int i);

	std::vector<std::vector<std::pair<std::string, std::string> > > getDataStructure();

	void printCombinations();
	void printCombinations(std::ofstream& fileOut);

	EdgeList compare(EdgeList& el);

private:
	std::vector<std::vector<std::pair<std::string, std::string> > > e;
};
